template<class Iterator, class Ref, class Ptr>//模板参数
class ReverseIterator
{
	typedef ReverseIterator<Iterator,Ref,Ptr> Self;
public:
	ReverseIterator(Iterator it)//初始化
		:_it(it)
	{
	}

	Self operator++()//++操作就相当于正向迭代器--
	{
		--_it;
		return *this;
	}

	Ref operator*()     //引入Ref是因为你并不知道解引用返回的类型
	{
		return *_it;
	}

	Ptr operator->()    
	{
		return *_it.operator->();
	}

	bool operator!=(const Self& s)
	{
		return _it != s._it;
	}

private:
	Iterator _it; //成员为普通迭代器
};

